/************************************************
*
*   filename:   action.h
*   date:       11/12/09
*
*   Created by
*       Kassandra Kaplan
*
*   purpose:
*       contains the action class
*
*   Revisions:
*       - 11/12/09
*            Ceated header
*
*
*   copyright 2009 by
*       Cy Cook
*       Kassandra Kaplan
*       Blaise Millegan
*       Jason Stafford
*
************************************************/


#ifndef ACTION_H_INCLUDED
#define ACTION_H_INCLUDED


#include "game_info.h"
#include "action_struct.h"

using namespace std;

class action
{


    private:
    action_struct *to_do;
    game_info *info;

    bool do_player(character *player, game_info *info);
    bool do_enemy(enemy *foe, game_info *info);
    public:

    // object and direct object chart
    enum
    {
        noone = 0,
        player_one = 1,
        player_two = 2,
        player_three = 3,
        player_four = 4,

        enemy_one = 100,
    };

    // verbs chart
    enum
    {
        nothing = 0,
        player_fight = 1,
        player_ice = 2,
        player_lit = 3,
        player_fire = 4,
        player_heal = 5,

        enemy_fight = 100,
    };

    action()
    {
        to_do->subject = noone;
        to_do->verb = nothing;
        to_do->direct_object = noone;
    };

    void set_action(int subj, int task, int target);

    void set_subject(int subj);

    void set_verb(int task);

    void set_direct_object(int target);

    bool do_action(game_info * info);

};

#endif
